// Generated from D:/personalWorkspace/antlr/src/main/resources\caculator.g4 by ANTLR 4.7.2
package antlr.caculator.gramma;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link caculatorParser}.
 */
public interface caculatorListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link caculatorParser#stat}.
	 * @param ctx the parse tree
	 */
	void enterStat(caculatorParser.StatContext ctx);
	/**
	 * Exit a parse tree produced by {@link caculatorParser#stat}.
	 * @param ctx the parse tree
	 */
	void exitStat(caculatorParser.StatContext ctx);
	/**
	 * Enter a parse tree produced by the {@code printExpr}
	 * labeled alternative in {@link caculatorParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterPrintExpr(caculatorParser.PrintExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code printExpr}
	 * labeled alternative in {@link caculatorParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitPrintExpr(caculatorParser.PrintExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code calExpr}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void enterCalExpr(caculatorParser.CalExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code calExpr}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void exitCalExpr(caculatorParser.CalExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code NUM}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void enterNUM(caculatorParser.NUMContext ctx);
	/**
	 * Exit a parse tree produced by the {@code NUM}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void exitNUM(caculatorParser.NUMContext ctx);
	/**
	 * Enter a parse tree produced by the {@code id}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void enterId(caculatorParser.IdContext ctx);
	/**
	 * Exit a parse tree produced by the {@code id}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void exitId(caculatorParser.IdContext ctx);
	/**
	 * Enter a parse tree produced by the {@code pmExpr}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void enterPmExpr(caculatorParser.PmExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code pmExpr}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void exitPmExpr(caculatorParser.PmExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code multi}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void enterMulti(caculatorParser.MultiContext ctx);
	/**
	 * Exit a parse tree produced by the {@code multi}
	 * labeled alternative in {@link caculatorParser#multi_exp}.
	 * @param ctx the parse tree
	 */
	void exitMulti(caculatorParser.MultiContext ctx);
	/**
	 * Enter a parse tree produced by {@link caculatorParser#type}.
	 * @param ctx the parse tree
	 */
	void enterType(caculatorParser.TypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link caculatorParser#type}.
	 * @param ctx the parse tree
	 */
	void exitType(caculatorParser.TypeContext ctx);
}